import axios from "axios";
import qs from 'qs'
import { loginToken } from "./index.ts";
import { Toast } from "antd-mobile";
import { createBrowserHistory } from "umi";
const history=createBrowserHistory()
const request = axios.create({
  baseURL: process.env.NODE_ENV === 'development' ? '/conner' : '生成环境源',
  timeout:8000,
})
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  if (config.method === 'get') {
    config.params.token=loginToken()
  }
  if (config.method === 'post') {
    config.data.token=loginToken()
  }
    // 在发送请求之前做些什么
  if (config.method === 'post' && config.data) {
    config.data= qs.stringify(config.data)
  }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 添加响应拦截器
request.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
  switch (response.data.code) {
    case 401:
      localStorage.removeItem('token')
     Toast.show({
          content: '登录信息过期，请重新登录',
          afterClose: () => {
            history.push('/login')
            history.go(0)
          },
     })
      break
    case 403:
      localStorage.removeItem('token')
       Toast.show({
          content: '登录信息过期，请重新登录',
          afterClose: () => {
            history.push('/login')
            history.go(0)
          },
     })
      break
  }
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});
export default request